1. Field of the Invention
The present invention relates to the basic input/output system (BIOS) program of a computer. In particular, the present invention discloses a computer with two BIOS programs that are selectable by a user, and either one of which may be used for backup purposes.
2. Description of the Prior Art
Currently, most computer systems utilize a basic input/output system (BIOS) program that is stored in non-volatile memory, and which is first executed by a central processing unit (CPU) when the computer system is turned on. Besides providing key low-level support for device drivers and operating systems, the BIOS program contains a power on self-test (POST) program, and a bootstrap program. The POST program ensures that the basic components of the computer system are operating correctly. After a successful completion of the POST program, the BIOS program executes the bootstrap program, the purpose of which is to load boot code into memory to boot an operating system. All of this is well known in the art of computer systems.
Recently, computers have begun shipping with the BIOS program stored in flash ROM. The great benefit of this is that the flash ROM may be programmed with a new BIOS program, thus relieving users of the tedious necessity of physically replacing hardware. BIOS program updates become analogous to simple software updates. Unfortunately, and what many users have learned to their chagrin, an improperly performed BIOS update can lead to a totally inoperative computer system, one which will require actual physical servicing of the flash ROM.
A solution to this problem has been proposed by Bealkowski et al. in their U.S. Pat. No. 5,327,531, entitled “Data Processing System Including Corrupt Flash ROM Recovery”, filed Sep. 21, 1992, and which is included herein by reference. Bealkowski et al. provides a second non-volatile memory device, an EPROM, that holds a secondary backup BIOS program. In the event that the primary BIOS program in the flash ROM appears corrupted, the secondary BIOS program is shadowed into the CPU address space and executed instead of the primary BIOS program.
Bealkowski et al., however, does not permit a user to explicitly select which BIOS program he or she would prefer to use. It is always assumed that the primary BIOS program in the flash ROM is the preferred program. This, however, is not always the case. Worse still, it is possible for a corrupted primary BIOS program to be shadowed into the CPU address space with the corruption going undetected. This is due to the simple integrity testing that is performed by the hardware as disclosed by Bealkowski et al, which simply checks a byte in the primary BIOS program for ‘EAh’ (i.e., 0xEA, hexadecimal). In the event that this value is correct when another region of the primary BIOS is corrupted, the user will once again be left with a useless computer system that must be physically serviced to restore operability.